UOJ #228. 基础数据结构练习题 您所在的位置:网站首页 HBU数据结构树练习题 UOJ #228. 基础数据结构练习题

UOJ #228. 基础数据结构练习题

2024-06-18 18:47| 来源: 网络整理| 查看: 265

sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧。

在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手。于是她的好朋友九条可怜酱给她出了一道题。

给出一个长度为 nn 的数列 AA,接下来有 mm 次操作,操作有三种:

对于所有的 i∈[l,r]i∈[l,r],将 AiAi 变成 Ai+xAi+x。 对于所有的 i∈[l,r]i∈[l,r],将 AiAi 变成 ⌊Ai‾‾√⌋⌊Ai⌋。 对于所有的 i∈[l,r]i∈[l,r],询问 AiAi 的和。

作为一个不怎么熟练的初学者,sylvia 想了好久都没做出来。而可怜酱又外出旅游去了,一时间联系不上。于是她决定向你寻求帮助:你能帮她解决这个问题吗。

输入格式

第一行两个数:n,mn,m。

接下来一行 nn 个数 AiAi。

接下来 mm 行中,第 ii 行第一个数 titi 表示操作类型:

若 ti=1ti=1,则接下来三个整数 li,ri,xili,ri,xi,表示操作一。

若 ti=2ti=2,则接下来三个整数 li,rili,ri,表示操作二。

若 ti=3ti=3,则接下来三个整数 li,rili,ri,表示操作三。

输出格式

对于每个询问操作,输出一行表示答案。

样例一 input 5 5 1 2 3 4 5 1 3 5 2 2 1 4 3 2 4 2 3 5 3 1 5 output 5 6 题解:线段树套路题,对于sqrt操作,十分的玄学,是这样做的:1.加法和区间求和还是老套路2.sqrt有如下几个讨论: (1).对于整个区间的数全部相等,那么直接做区间减法即可 (2).对于区间中的最大值max,最小值min,如果min+1==max && sqrt(min)+1==sqrt(max) 也可以做区间减法复杂度证明请参见论文 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define ls (node='0' && chse || rse || rse || r


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有